package approval

import (
	"data/view"
	"time"
)

//
type Req_addType struct {
	view.BaseAccessToken
	Type_name     string `json:"type_name,omitempty"`     //审批流类型
	Url           string `json:"url,omitempty"`           //审批流url
	Template_name string `json:"template_name,omitempty"` //模板名称
	Template_url  string `json:"template_url,omitempty"`  //模板名称url
}

//
type Req_getType struct {
	view.BaseAccessToken
}

//
type Req_deleteType struct {
	view.BaseAccessToken
	Name string `json:"name,omitempty"` //审批流类型
}

//
type UpdateTemplateParam struct {
	Access_token string `json:"access_token"` //access_token
	Type_name    string `json:"type_name"`    //类型名称
	Name         string `json:"name"`         //模板名称
	Url          string `json:"url"`          //logo图片地址
	Widget_info  string `json:"widget_info"`  //内容
	// Widget_info  []Widget_info       `json:"widget_info"`  //控件信息
	// Widget_Group []Widget_group_info `json:"widget_group"` //控件组信息
	Approvers []string `json:"approvers"` //多个审批人
	Copyers   []string `json:"copyers"`   //多个抄送人
	Attach    string   `json:"attach"`    //附加
	Is_vaild  int      `json:"is_vaild"`  //是否有效（1：是 -1：否）
}

//控件内容
type Widget_info struct {
	Name  string `json:"name"`  //控件名称
	Value string `json:"value"` //控件初始值
}

//控件信息
// type Widget_info struct {
// 	Widget_simple_info
// 	Format  string   `json:"format"`  //文本格式
// 	Options []string `json:"options"` //多个选项
// 	Is_must int      `json:"is_must"` //是否必须（0：否 1：是）
// }

// //控件组信息
// type Widget_group_info struct {
// 	Group_name string        `json:"group_name"` //控件组名
// 	Info       []Widget_info `json:"info"`       //控件组
// }

// type Widget_all struct {
// 	Normal []Widget_info       `json:"normal"` //普通控件
// 	Group  []Widget_group_info `json:"group"`  //组控件
// }

// type Widget_simple_all struct {
// 	Normal []Widget_simple_info   `json:"normal"` //普通控件
// 	Group  [][]Widget_simple_info `json:"group"`  //组控件
// }

//
type Template_s_info struct {
	Name string       `json:"name"`
	Url  string       `json:"url"`
	List []Template_s `json:"list"`
}

//
type Template_s struct {
	Name     string `json:"name"`
	Url      string `json:"url"`
	Is_vaild int    `json:"is_vaild"` //是否有效
	Flag     int    `json:"flag"`     //1：通用审批  2：系统审批
}

//审批详情
type Approval_list_return struct {
	Type_name string `json:"type_name"` //类型名字
	Name      string `json:"name"`      //审批流类型
	Url       string `json:"url"`       //审批流显示图片地址
	// Widget_info  []Widget_info       `json:"widget_info"`  //控件信息
	// Widget_Group []Widget_group_info `json:"widget_group"` //控件组信息
	Widget_info string          `json:"widget_info"` //控件信息
	Approvers   []User_info_tmp `json:"approvers"`   //多个审批人
	Copyers     []User_info_tmp `json:"copyers"`     //多个抄送人
	Attach      string          `json:"attach"`      //附加
	Update_time time.Time       `json:"update_time"` //更新时间
	Operator    string          `json:"operator"`    //操作人
	Is_vaild    int             `json:"is_vaild"`    //是否有效
	Flag        int             `json:"flag"`        //1：通用审批  2：系统审批
}

//
type SubmitParam struct {
	Access_token string `json:"access_token"` //access_token
	Name         string `json:"name"`         //审批流类型
	Type_name    string `json:"type_name"`    //类型名字
	Content      string `json:"content"`      //内容
}

//
type CancelParam struct {
	Access_token string `json:"access_token"` //access_token
	Apply_no     string `json:"apply_no"`     //审批编号
	Attach       string `json:"attach"`       //撤销理由
}

//
type GetMineSubmitParam struct {
	Access_token string `json:"access_token"` //access_token
	Name         string `json:"name"`         //审批模板名
	Search       string `json:"search"`       //搜索条件
	Status       int    `json:"status"`       //审批状态 1:审批未通过 2：审批通过 3：审批中 4：已撤销
	//1：待我审批 2：我已审批
}

type Approval_event_view struct {
	Applicant   string `json:"applicant"`               //申请人
	Type_name   string `json:"type_name"`               //类型名字
	Name        string `json:"name"`                    //审批流类型
	Apply_no    string `json:"apply_no"`                //申请编号
	Content_str string `gorm:"column:content" json:"-"` //内容
	// Content     []Widget_simple_info `gorm:"-" json:"content"`        //控件信息
	Content    string    `gorm:"-" json:"content"` //控件信息
	Apply_time time.Time `json:"apply_time"`       //申请时间
	Is_vaild   int       `json:"is_vaild"`         //是否有效（0：是 -1：否）
	Attach     string    `json:"attach"`           //附加
	Status     int       `json:"status"`           //审批状态（1：审批未通过 2：审批通过 3：审批中）
	Flag       int       `json:"flag"`             //1：通用审批  2：系统审批
}

type Approval_event_all_view struct {
	Approval_event_view
	Copyers_str     string            `gorm:"column:copyers" json:"-"` //多个抄送人
	Copyers         []User_info_tmp   `gorm:"-" json:"copyers"`        //多个抄送人
	Approval_result []Approval_result `json:"approval_result"`         //多个审批人
}

type Approval_result struct {
	Approver      string    `json:"approver"`      //审批人
	Headimg_url   string    `json:"headimg_url"`   //头像地址
	Alias         string    `json:"alias"`         //别名
	Approval_time time.Time `json:"approval_time"` //审批时间
	Result        int       `json:"result"`        //审批结果（1：通过  -1：未通过  0：未审批）
	Comment       string    `json:"comment"`       //意见
	Is_current    int       `json:"is_current"`    //是否当前审批人（1：是  0：否）
}

type DealParam struct {
	Access_token string `json:"access_token"` //access_token
	Apply_no     string `json:"apply_no"`     //审批编号
	Result       int    `json:"result"`       //审批结果（1：通过  -1：未通过  0：未审批）
	Comment      string `json:"comment"`      //意见
}

type User_info_tmp struct {
	User        string `json:"user"`        //用户名
	Headimg_url string `json:"headimg_url"` //头像地址
	Alias       string `json:"alias"`       //别名
}
